
new returns a pointer to the allocated memory
The storage
duration of the new object is from the point of creation until the operator delete destroys it by deallocating
its memory, or until the end of the program.
By default,
an allocation failure (such as insufficient or fragmented heap memory) results in the predefined exception bad_alloc being thrown.
You should
use the delete operator to remove all memory which has been allocated by the new operator. Failure to free memory can result in memory leaks.
The delete operator offers dynamic storage deallocation, deallocating a memory block allocated by a
previous call to new.